Alias Analysis for Intermediate Code
نویسندگان
چکیده
Most existing alias analysis techniques are formulated in terms of high-level language constructs and are unable to cope with pointer arithmetic. For machines that do not have ’base + offset’ addressing mode, pointer arithmetic is necessary to compute a pointer to the desired address. Most state of the art compilers such as GCC lack the mechanism to determine aliasing between such computed pointers. Few other existing alias analysis techniques described for executable code can handle pointer arithmetic but require large memory when applied to intermediate languages such as RTL. In this paper, we describe a method of disambiguating the computed pointers within a procedure at the intermediate code level. The method is similar to the techniques described for executable code but requires significantly less amount of memory. We have experimented our method with the GCC RTL and it reduces the code size of array manipulating benchmarks by approximately 4-7% for the machines that do not have ’base + offset’ addressing mode.
منابع مشابه
Designing the McCAT Compiler Based on a Family of Structured Intermediate Representations
The eeective exploitation of advanced technology for the development of the next-generation high-performance computers requires the integrated development of compiler techniques and architectural design. In order to provide a research tool with which we can experiment with both new architectural features and compiler support for those features, we have been developing the McGill Com-piler/Archi...
متن کاملA General Compiler Framework for Data Speculation Using DSCM
Getting precise alias information in a language that allows pointers, such as C, is expensive. One reason is that alias analysis should generate conservative (safe) alias information. Alias analysis assumes possible aliases when it can’t prove there are no aliases. The conservative alias information may greatly affect compiler optimizations. In this paper, we present a general framework to allo...
متن کاملThe Swift Java Compiler: Design and Implementation
We have designed and implemented an optimizing Java compiler called Swift for the Alpha architecture. Swift translates Java bytecodes to optimized Alpha code, and uses static single assignment (SSA) form for its intermediate representation (IR). The Swift IR is relatively simple, but allows for straightforward implementation of all the standard scalar optimizations. The Swift compiler also impl...
متن کاملAlias Analysis for Fortran90 Array Slices
Most alias analyses produce approximate results in the presence of array slices. This may lead to ine cient code which is of concern, especially, in languages like Fortran90. In this paper, we present an overview of a static alias analysis that gives accurate results in the presence of array slices in
متن کاملHardware Parameters of Vliw Cores and Code Quality Factors Affecting Alias
Recent studies have shown that the ability of disambiguating memory addresses (often referred to as alias analysis) gives concrete performance benefits to the compilation of C code for VLIW machines. This experimental research studies which factors, though external to alias analysis, strongly determine its impact on the performance of compiled code. These factors belong to two categories: archi...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003